import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Created whit IntelliJ IDEA.
 * Description：
 * User：ZHONGCHEN
 * Date:2022-03-31
 * Time:10:22
 */
public class TestDemo {
    //728. 自除数-直接模拟
    public static void main1(String[] args) {
        System.out.println(selfDividingNumbers(1, 22));
    }

    //自除数 是指可以被它包含的每一位数整除的数。
    //例如，128 是一个 自除数 ，因为 128 % 1 == 0，128 % 2 == 0，128 % 8 == 0。
    //自除数 不允许包含 0 。
    //给定两个整数 left 和 right ，返回一个列表，列表的元素是范围 [left, right] 内所有的 自除数 。
    public static List<Integer> selfDividingNumbers(int left, int right) {
        List<Integer> list = new ArrayList<>();
        for (int i = left; i <= right; i++) {
            int num = i;
            while (num > 0) {
                int tmp = num % 10;
                if (tmp == 0 || i % tmp != 0) {
                    break;
                }
                num /= 10;
            }
            if (num == 0) {
                list.add(i);
            }
        }
        return list;
    }
}
